/*----------------------------------------\ | Get rid of the bracket accordingly; | |-------------------------------------------| |--------------------------------------------------------------------| |---------------------------| | Arguement: | | string: the string you want to debracket; | |-----------------------------| |--------------------------------------------------------------------| |---------------------------------------| | Usage: %debracket(string); | \----------------------------------------*/ %macro debracket(string); /*--------------------------------------------\ | Copy Right: Duo Zhou; | | Created: 5-25-2002 8:49pm; | | Purpose: Get the system date and time; | \--------------------------------------------*/ %local _unbrktstr_; %let _unbrktstr_=&string; %if (%index(%BQUOTE(%trim(%BQUOTE(%left(%BQUOTE(&_unbrktstr_))))), %str(%()) and %index(%BQUOTE(%trim(%BQUOTE(%left(%BQUOTE(&_unbrktstr_))))), %str(%)))) %then %do; %if (%index(%BQUOTE(%trim(%BQUOTE(%left(%BQUOTE(&_unbrktstr_))))), %str(%()) ge 2) %then %do; %let _unbrktstr_=%substr(%bquote(&string), 1, %eval(%index(%BQUOTE(%trim(%BQUOTE(%left(%BQUOTE(&string))))), %str(%())-1))%substr(%bquote(&string), %eval(%index(%BQUOTE(%trim(%BQUOTE(%left(%BQUOTE(&string))))), %str(%())+1), %eval(%length(&string)-%index(%BQUOTE(%trim(%BQUOTE(%left(%BQUOTE(&string))))), %str(%()))); %end; %else %do; %let _unbrktstr_=%substr(%bquote(&string), %eval(%index(%BQUOTE(%trim(%BQUOTE(%left(%BQUOTE(&string))))), %str(%())+1), %eval(%length(&string)-%index(%BQUOTE(%trim(%BQUOTE(%left(%BQUOTE(&string))))), %str(%()))); %end; %if (%index(%BQUOTE(%trim(%BQUOTE(%left(%BQUOTE(&_unbrktstr_))))), %str(%()) and %index(%BQUOTE(%trim(%BQUOTE(%left(%BQUOTE(&_unbrktstr_))))), %str(%)))) and (%index(%BQUOTE(%trim(%BQUOTE(%left(%BQUOTE(&_unbrktstr_))))), %str(%()) lt %index(%BQUOTE(%trim(%BQUOTE(%left(%BQUOTE(&_unbrktstr_))))), %str(%)))) %then %do; %if (%index(%BQUOTE(%trim(%BQUOTE(%left(%BQUOTE(%sysfunc(reverse(%bquote(&_unbrktstr_)))))))), %str(%))) ge 2) %then %do; %let _unbrktstr_=%sysfunc(reverse(%bquote(%substr(%bquote(%sysfunc(reverse(%bquote(&_unbrktstr_)))), 1, %eval(%index(%BQUOTE(%trim(%BQUOTE(%left(%BQUOTE(%sysfunc(reverse(%bquote(&_unbrktstr_)))))))), %str(%)))-1))%substr(%bquote(%sysfunc(reverse(%bquote(&_unbrktstr_)))), %eval(%index(%BQUOTE(%trim(%BQUOTE(%left(%BQUOTE(%sysfunc(reverse(%bquote(&_unbrktstr_)))))))), %str(%)))+1), %eval(%length(%bquote(%sysfunc(reverse(%bquote(&_unbrktstr_)))))- %index(%BQUOTE(%trim(%BQUOTE(%left(%BQUOTE(%sysfunc(reverse(%bquote(&_unbrktstr_)))))))), %str(%)))))))); %end; %else %do; %let _unbrktstr_=%sysfunc(reverse(%bquote(%substr(%bquote(%sysfunc(reverse(%bquote(&_unbrktstr_)))), %eval(%index(%BQUOTE(%trim(%BQUOTE(%left(%BQUOTE(%sysfunc(reverse(%bquote(&_unbrktstr_)))))))), %str(%)))+1), %eval(%length(%bquote(%sysfunc(reverse(%bquote(&_unbrktstr_)))))- %index(%BQUOTE(%trim(%BQUOTE(%left(%BQUOTE(%sysfunc(reverse(%bquote(&_unbrktstr_)))))))), %str(%)))))))); %end; %end; %else %do; %if (%index(%BQUOTE(%trim(%BQUOTE(%left(%BQUOTE(%sysfunc(reverse(%bquote(&_unbrktstr_)))))))), %str(%))) ge 2) %then %do; %let _unbrktstr_=%sysfunc(reverse(%bquote(%substr(%bquote(%sysfunc(reverse(%bquote(&_unbrktstr_)))), 1, %eval(%index(%BQUOTE(%trim(%BQUOTE(%left(%BQUOTE(%sysfunc(reverse(%bquote(&_unbrktstr_)))))))), %str(%)))-1))%substr(%bquote(%sysfunc(reverse(%bquote(&_unbrktstr_)))), %eval(%index(%BQUOTE(%trim(%BQUOTE(%left(%BQUOTE(%sysfunc(reverse(%bquote(&_unbrktstr_)))))))), %str(%)))+1), %eval(%length(%bquote(%sysfunc(reverse(%bquote(&_unbrktstr_)))))- %index(%BQUOTE(%trim(%BQUOTE(%left(%BQUOTE(%sysfunc(reverse(%bquote(&_unbrktstr_)))))))), %str(%)))))))); %end; %else %do; %let _unbrktstr_=%sysfunc(reverse(%bquote(%substr(%bquote(%sysfunc(reverse(%bquote(&_unbrktstr_)))), %eval(%index(%BQUOTE(%trim(%BQUOTE(%left(%BQUOTE(%sysfunc(reverse(%bquote(&_unbrktstr_)))))))), %str(%)))+1), %eval(%length(%bquote(%sysfunc(reverse(%bquote(&_unbrktstr_)))))- %index(%BQUOTE(%trim(%BQUOTE(%left(%BQUOTE(%sysfunc(reverse(%bquote(&_unbrktstr_)))))))), %str(%)))))))); %end; %end; %end; &_unbrktstr_ %put; %mend debracket;